DynamoDB Transactions একটি শক্তিশালী বৈশিষ্ট্য যা আপনাকে একাধিক রিড এবং রাইট অপারেশন একযোগভাবে (atomic) সম্পাদন করতে দেয়। এটি ACID (Atomicity, Consistency, Isolation, Durability) গ্যারান্টি প্রদান করে, যার মাধ্যমে ডেটাবেসে একাধিক অপারেশন একযোগে নিরাপদ এবং সঠিকভাবে সম্পাদিত হয়।
যখন আপনি একাধিক রিড বা রাইট অপারেশনকে একসাথে একত্রে কার্যকর করতে চান, তখন Transactions ব্যবহার করা হয়। এটি ডেটা একসাথে আপডেট, রিড, অথবা ডিলিট করার একটি কার্যকর পদ্ধতি, যাতে আপনি পুরো কার্যক্রমকে একটি একক লেনদেন (transaction) হিসেবে বিবেচনা করতে পারেন।
DynamoDB Transactions দুটি প্রধান API প্রদান করে:
import boto3
from botocore.exceptions import ClientError
# DynamoDB client তৈরি
dynamodb = boto3.client('dynamodb')
# TransactWriteItems API কল করা
try:
response = dynamodb.transact_write_items(
TransactItems=[
{
'Put': {
'TableName': 'Users',
'Item': {
'UserID': {'S': '12345'},
'Name': {'S': 'John Doe'},
'Age': {'N': '30'}
}
}
},
{
'Update': {
'TableName': 'Accounts',
'Key': {
'AccountID': {'S': '67890'}
},
'UpdateExpression': 'SET Balance = Balance + :val',
'ExpressionAttributeValues': {
':val': {'N': '100'}
}
}
}
]
)
print("Transaction succeeded:", response)
except ClientError as e:
print("Transaction failed:", e)
import boto3
# DynamoDB client তৈরি
dynamodb = boto3.client('dynamodb')
# TransactGetItems API কল করা
response = dynamodb.transact_get_items(
TransactItems=[
{
'Get': {
'TableName': 'Users',
'Key': {
'UserID': {'S': '12345'}
}
}
},
{
'Get': {
'TableName': 'Accounts',
'Key': {
'AccountID': {'S': '67890'}
}
}
}
]
)
# রিড ফলাফল দেখানো
for item in response['Responses']:
print(item)
Put
, Update
, Delete
, এবং Get
অপারেশনগুলি ট্রানজেকশনে ব্যবহার করা যায়। অন্যান্য কিছু অপারেশন যেমন Query
বা Scan
ব্যবহার করা যায় না।DynamoDB Transactions অত্যন্ত শক্তিশালী এবং স্কেলেবল টুল যা আপনার অ্যাপ্লিকেশনকে একাধিক রিড/রাইট অপারেশন একযোগে করার সুযোগ দেয়, যা ডেটার সঙ্গতি এবং নিরাপত্তা বজায় রাখে। আপনি যখন একাধিক টেবিল বা আইটেমে কাজ করছেন এবং আপনার লেনদেনটি অ্যাটমিক এবং সঠিক হওয়া প্রয়োজন, তখন এটি ব্যবহারের জন্য একটি আদর্শ পদ্ধতি।
common.read_more